<HTML>
<HEAD>
<META name="description"
	content="Violet UML Editor cross format document" />
<META name="keywords" content="Violet, UML" />
<META charset="UTF-8" />
<SCRIPT type="text/javascript">
	function switchVisibility() {
		var obj = document.getElementById("content");
		obj.style.display = (obj.style.display == "block") ? "none" : "block";
	}
</SCRIPT>
</HEAD>
<BODY>
	This file was generated with Violet UML Editor 2.1.0.
	&nbsp;&nbsp;(&nbsp;<A href=# onclick="switchVisibility()">View Source</A>&nbsp;/&nbsp;<A href="http://sourceforge.net/projects/violet/files/violetumleditor/" target="_blank">Download Violet</A>&nbsp;)
	<BR />
	<BR />
	<SCRIPT id="content" type="text/xml"><![CDATA[<ClassDiagramGraph id="1">
  <nodes id="2">
    <ClassNode id="3">
      <children id="4"/>
      <location class="Point2D.Double" id="5" x="100.0" y="130.0"/>
      <id id="6" value="4edf89b7-f58e-4cf6-9607-c437645f002d"/>
      <revision>1</revision>
      <backgroundColor id="7">
        <red>255</red>
        <green>255</green>
        <blue>255</blue>
        <alpha>255</alpha>
      </backgroundColor>
      <borderColor id="8">
        <red>0</red>
        <green>0</green>
        <blue>0</blue>
        <alpha>255</alpha>
      </borderColor>
      <textColor reference="8"/>
      <name id="9" justification="1" size="3" underlined="false">
        <text>AbstractBootstrap</text>
      </name>
      <attributes id="10" justification="0" size="4" underlined="false">
        <text></text>
      </attributes>
      <methods id="11" justification="0" size="4" underlined="false">
        <text></text>
      </methods>
    </ClassNode>
    <InterfaceNode id="12">
      <children id="13"/>
      <location class="Point2D.Double" id="14" x="110.0" y="30.0"/>
      <id id="15" value="230e2cd6-b7d7-4564-9a70-b9d5f56c9010"/>
      <revision>1</revision>
      <backgroundColor reference="7"/>
      <borderColor reference="8"/>
      <textColor reference="8"/>
      <name id="16" justification="1" size="3" underlined="false">
        <text>&lt;interface&gt;
Cloneable</text>
      </name>
      <methods id="17" justification="0" size="4" underlined="false">
        <text></text>
      </methods>
    </InterfaceNode>
    <ClassNode id="18">
      <children id="19"/>
      <location class="Point2D.Double" id="20" x="40.0" y="250.0"/>
      <id id="21" value="998c9e22-3c18-4caa-9e43-85f6ce543651"/>
      <revision>1</revision>
      <backgroundColor reference="7"/>
      <borderColor reference="8"/>
      <textColor reference="8"/>
      <name id="22" justification="1" size="3" underlined="false">
        <text>Bootstrap</text>
      </name>
      <attributes id="23" justification="0" size="4" underlined="false">
        <text></text>
      </attributes>
      <methods id="24" justification="0" size="4" underlined="false">
        <text></text>
      </methods>
    </ClassNode>
    <ClassNode id="25">
      <children id="26"/>
      <location class="Point2D.Double" id="27" x="180.0" y="250.0"/>
      <id id="28" value="527a875e-a4b0-4c6a-9214-3af2ffa8b6b1"/>
      <revision>1</revision>
      <backgroundColor reference="7"/>
      <borderColor reference="8"/>
      <textColor reference="8"/>
      <name id="29" justification="1" size="3" underlined="false">
        <text>ServerBootstrap</text>
      </name>
      <attributes id="30" justification="0" size="4" underlined="false">
        <text></text>
      </attributes>
      <methods id="31" justification="0" size="4" underlined="false">
        <text></text>
      </methods>
    </ClassNode>
  </nodes>
  <edges id="32">
    <InterfaceInheritanceEdge id="33">
      <start class="ClassNode" reference="3"/>
      <end class="InterfaceNode" reference="12"/>
      <startLocation class="Point2D.Double" id="34" x="60.0" y="10.0"/>
      <endLocation class="Point2D.Double" id="35" x="50.0" y="40.0"/>
      <transitionPoints id="36"/>
      <id id="37" value="93097c7f-be92-47f4-9d88-24d00bb78e23"/>
      <revision>1</revision>
      <bentStyle name="AUTO"/>
      <startLabel></startLabel>
      <middleLabel></middleLabel>
      <endLabel></endLabel>
    </InterfaceInheritanceEdge>
    <InheritanceEdge id="38">
      <start class="ClassNode" reference="18"/>
      <end class="ClassNode" reference="3"/>
      <startLocation class="Point2D.Double" id="39" x="80.0" y="20.0"/>
      <endLocation class="Point2D.Double" id="40" x="40.0" y="50.0"/>
      <transitionPoints id="41"/>
      <id id="42" value="039ec4ef-d8d7-4fae-a6f3-33c7e487ac66"/>
      <revision>1</revision>
      <bentStyle name="STRAIGHT"/>
      <startLabel></startLabel>
      <middleLabel></middleLabel>
      <endLabel></endLabel>
    </InheritanceEdge>
    <InheritanceEdge id="43">
      <start class="ClassNode" reference="25"/>
      <end class="ClassNode" reference="3"/>
      <startLocation class="Point2D.Double" id="44" x="60.0" y="30.0"/>
      <endLocation class="Point2D.Double" id="45" x="60.0" y="40.0"/>
      <transitionPoints id="46"/>
      <id id="47" value="5bf795a7-657d-46fe-83ae-81bb30fbe66d"/>
      <revision>1</revision>
      <bentStyle name="STRAIGHT"/>
      <startLabel></startLabel>
      <middleLabel></middleLabel>
      <endLabel></endLabel>
    </InheritanceEdge>
  </edges>
</ClassDiagramGraph>]]></SCRIPT>
	<BR />
	<BR />
	<IMG alt="embedded diagram image" src="
XrgxuG5rW7FGSSKDDOJWYFGxLrWLu/hiiIiCosTCCKmlXFvwRRsSIklFRUZSEiIRwbZUq0sFYhIS
EokuFRVJLCEh0vN9POx97nNnHP+NjvfO5/ti+M2Zc8+cOedzf+d3ztxz77yPntM8NBl99LTmeZLv
j4i2gm8E3/QZfMM3febatnr0r+AbvuEbvuEbvuEbvuEbvuEbvuEbvuEbvhF8wzd8wzd8wzd8wzd8
wzd8wzd8wzd8w3ds+Y5+eXR7e3tRUdHESzt//nxmZmZSUlJhYSF8w3fc+G5tbQ0Gg9OkP1zz589X
/qGhoZGRkWn+QFVPlYRv+J6EhF1jY+PSpUstcB1GS0tLQUFBRkbG1atXk5OT7ftfdGx5eXnqqGQM
Dw9bRxUXF69evdqRv6+vT74/JSVF7nzlypU3b940hVRUVKSnpyuzPu3v749esqra0NAwzbMFvhOC
719//XXRokU6UCxWV1c/efIknO9Dhw51dnbK8Pv9Dv9dVVUl++LFi1euXJFx+PBhK4Mc7Zs3bxz5
9S3Xr1+X8fTpUyXqq2VXVlaaQnp6emTk5+ePVbKqp0rm5uaaY1V5+IbvcQ5RcGz8aHgEYoz3798b
W07Xwas5Nz58+CBvKiMrK8vKYDxueDxz//79AwcOGEYVuliFOPxxxJItqcJLliyZTjwG34niv+WV
dWAgEKivr3/79m043xGht8fWlgyvDqDtb0+dOiV78+bNDx8+jFigI2p3lPzu3TtFJgqWzGBSW1sL
3/A9fvx95syZ5cuXh3vocflWUB7ueqPwbcLxkVFZ6ZarthcSsWRVT4mqqiYMxN/wPTm1tbWZ9ZPo
fKelpZn1ECt01unR3d0tw6wARuHboNzV1SU3bKWbQs6dO2cKMfF3xJL1euPGDdZP4Hu65UTh26yi
GOAUZJtVDqVs2LDh+fPn0fluaWnx+Xw6Q3SUlW4KSUlJUSHFxcVm/SRiybFtK/hOUL4TQfAN3/AN
3/AN3/AN3/AN3/AN3/AN3/AN3wi+4Ru+4Ru+4Ru+PcN3e3t7QUFBUlJSWlratm3bXr169XHyexom
W+3wwmf6EQvwnYh8d3V1paSkfPfdd8PDw21tbSrQbEWDb/j2At8//fSTuf4pCm0VFRVy7ampqZWV
lfZP7dt8Po6xASfi/h1z+MmTJ/1+fyAQePnypf0bI5YD3/A9FaWnp4dflWqn7ejRozLq6+sbGxtl
VFdXfxxjm0/EDTgR9++Yw8WuMssIhUL2b4xYDnzDd8xCBXu62QzxYVQOQB3bfMbagBO+f8fa72PK
1OBg/8boG3ngG74nIXNtdxT/bXYYWInhO9YsO+IGnHH374SXGbEc+Ibvqej777+PHn9b3tT4WvuG
S0fOiBtwIu7fMYZVpmKkccuBb/ie4vqJ3Gdpaal4UqCsAtetW2enTeGvjIaGBhN/19TUjMV3xA04
EffvGENBy6VLl2Ts2LFj3HLgG76nqD/++CM/P19hgPyoUHPc40FRskA0qxma+YVH7Y5dOY4NOBH3
71jLL/pIX+1YcZ+hjTzwnaB8J4jgG77hG77hG77hG77hG77hG77hG77hG74RfMM3fMM3fMM3fMM3
fMM3fMM3fMM3fMM3fMM3fCP4hm/4hm/4hm/4hm+nnj17Bt/wHZs+m2sKBoPz5qrg28V6NAfU3d0d
CoVWrFixdu3aR3NY8A3fU9G1a9cCgcDw8HBBQcFvv/0G3/DtKb6//vrrBw8efBx9bnxmZuaff/4J
3/DtER07dmzfvn1jvUXw7WL19vZmZ2cPDg5aKYpScnJyjDtH8O1urV+/vqWlxZF49+7dvLy8WN0A
FsF3fHThwoWSkpKIH23fvv3EiRM0EXy7VS9evBh34XlgYICGgm+vNDRXDcA3QvCNEHwTnyD4hm/4
RvAN3wi+4Rsh+EYIvolPEHzDN3wj+IZvBN/wjRB8IwTfxCcIvuEbwTd8wzeCb/hGCL4Rgm/iEwTf
8I3gG74RfMM3fCME3wjBNyI+gW/4RvAN3wi+4Ru5mu95aLYE3/hCxhz4pt1pZ/iGb9oZvuF79trZ
7U9/hW8E3/AN3/AN3/AN3/AN3/AN3/AN3wi+4RvBN3wj+IZv+IZv+IZv+IZv+IZv+IZv+EbwDd8I
vuEbwTd8wzd8wzd8wzd8wzd8wzd8wzeCbw/z3dfXZ92Y5vHjx1bmCZ4P7e3tRUVF06ybvRCrMvPn
z09OTg4Gg0+ePJlyaTNXZ/h2B9+XLl2ykDp37txk+Y7JHZvshdjte/fuyc7NzZ1yaTNXZ/h2B9/b
tm3TR5s3b9ZrWVmZnYCTJ0/6/f5AIPDy5Usl3r9/v6CgICkpKSUlRf6vv79f/tV+UzJjFBcXr169
2owMyqbMOmTlypU3b95U4sjISEVFRXp6uo6NUoi92irB2DowLS0tNTW1srLSyuBIdJQWkzqbPFeu
XFG1rdaAb3fwvWLFCn1048YNvS5ZssTOd3l5+cWLF2WEQiElZmVlyX779m1nZ6eM/Pz8iK63tbX1
zZs3eitirl+/LuPp06dKX7RokWxRKFvF9vT0RCnE2Ldu3ZJ96NAh2UePHpVdX1/f2Ngoo7q6eqxE
ewkxqbPJs2fPnvPnz8uQR4Bvd/D9/v17pcv5yf7kk08MClaPDg8Pf/jwQYYcpBL1KlteTTANDQ2N
FVroKKt8uc8DBw4owDDxtFJEjGx58ejxiSX5y97eXqVrJNHbD6OyyIuYaC8tJnU2eXS4vTXg2wV8
y1cpfcuWLbL1KrulpSWcAA3WMi5fvqwB2nzk8/k0XkdxvdKpU6dM5PPw4cOxwo/o8XdbW5vsxYsX
y1YdwqsUMdFeQszrbH0LfLuAbxMt2KVw1upRyy8KEZNffk6nhMIVy41FYcVEuiOjsj4y/lvFToRv
O0/WgaZKCjzGSnSUMP06G+Pdu3fmW3SewLc7+NZcyvLZ8m2yCwsLrR7VMG1WV3bs2KFEhQqy5die
P38uY+nSpVYAYIZ+BysGvq6uroaGBusjc0adO3euu7vbCojHKuTOnTuyNUGUffjwYdkqyoTaNTU1
YyXaS4tJnY2xd+9ejQYydu3aBd8u4Fsuyozvr1690tu///7bOEvLdYl7+SohaDIIEcUwZm0hGAya
xfKrV6/K59nPCqt8c7hg0jzV+kjeVG9ViI4qLi7u7++PWIiJfZVNiX19feZAnW+po6qqqrJ8c3ii
vbSY1NkYdXV1KmfNmjVmJgrf7lg/QbFd44dv+HaZkkcF3/CN4Bu+4Ru+4Ru+4Ru+4Ru+4Ru+4RvB
N3wj+IZv+IZv+IZv+IZv+IZv+IZv+AY++IZvBN/wjeAbvuEbvuEbvuEbvuEbvuEbvuEbwTd8I/iG
bwTf8A3f8A3f8A3fruO7r6/PfnfW2ZG+0dz1Cr4TiO/Z1KefflpYWGhu/xcvff7559bNY2dT8B1n
PZoxXbt2raKiIjc31+fzrV+/vri4eMGCBY/iobS0tIMHD6oCqampeq2urr5z584s1wG+vcD3gwcP
6urqysrKvvjiC7nM3bt3t7a2/vPPP/qiPXv2/PDDD3HhW6PHrVu3VIfBwcHTp0+vXbtWvvybb76p
qan566+/4Bu+J+qwzaB85MiRjo4OR6i9cePGY8eOxYXvH3/8UVjbK/P69euzZ89aD9OBb8/yHVsN
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
QmCC" />
</BODY>
</HTML>